package cn.com.tarotframework.server.workflow.service;

import cn.com.tarotframework.server.workflow.po.FlowLine;
import cn.com.tarotframework.server.workflow.po.FlowNode;

import java.util.List;
import java.util.concurrent.CompletableFuture;

/**
 * 执行接口
 */
public interface IFlowNodeService {

    /**
     * 执行流程,执行成功
     * @param flowNode 节点信息
     */
    CompletableFuture<FlowNode> executeComplete(FlowNode flowNode);

    /**
     * 执行流程,执行成功
     * @param flowNodes 节点信息
     */
    CompletableFuture<List<FlowNode>> executeComplete(List<FlowNode> flowNodes);



    /**
     * 执行流程，执行失败
     * @param flowNode 节点信息
     */
    FlowNode executeFail(FlowNode flowNode);

    /**
     * 执行流程，未执行
     * @param flowNode 节点信息
     */
    FlowNode executeStop(FlowNode flowNode);

}
